
//    |  /           |
//    ' /   __| _` | __|  _ \   __|
//    . \  |   (   | |   (   |\__ `
//   _|\_\_|  \__,_|\__|\___/ ____/
//                   Multi-Physics
//
//  License:         BSD License
//                   Kratos default license: kratos/license.txt
//
//  Main authors:    Ignasi de Pouplana
//


#include "poromechanics_application_variables.h"

namespace Kratos
{
//Create Variables
KRATOS_CREATE_VARIABLE( double, VELOCITY_COEFFICIENT )
KRATOS_CREATE_VARIABLE( double, DT_LIQUID_PRESSURE_COEFFICIENT )

KRATOS_CREATE_VARIABLE( double, LIQUID_PRESSURE )
KRATOS_CREATE_VARIABLE( double, REACTION_LIQUID_PRESSURE )
KRATOS_CREATE_VARIABLE( double, DT_LIQUID_PRESSURE )
KRATOS_CREATE_VARIABLE( double, NORMAL_LIQUID_FLUX )
KRATOS_CREATE_VARIABLE( double, LIQUID_DISCHARGE )
KRATOS_CREATE_VARIABLE( double, CAPILLARY_PRESSURE )
KRATOS_CREATE_VARIABLE( double, LIQUID_SATURATION_DEGREE )
KRATOS_CREATE_VARIABLE( double, LIQUID_RELATIVE_PERMEABILITY )

KRATOS_CREATE_VARIABLE( double, DENSITY_SOLID )
KRATOS_CREATE_VARIABLE( double, DENSITY_LIQUID )
KRATOS_CREATE_VARIABLE( double, DYNAMIC_VISCOSITY_LIQUID )
KRATOS_CREATE_VARIABLE( std::string, SATURATION_LAW_NAME )
KRATOS_CREATE_VARIABLE( double, RESIDUAL_LIQUID_SATURATION )
KRATOS_CREATE_VARIABLE( double, PORE_SIZE_FACTOR )
KRATOS_CREATE_VARIABLE( double, MINIMUM_RELATIVE_PERMEABILITY )
KRATOS_CREATE_VARIABLE( double, BULK_MODULUS_SOLID )
KRATOS_CREATE_VARIABLE( double, BULK_MODULUS_LIQUID )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_XX )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_YY )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_ZZ )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_XY )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_YZ )
KRATOS_CREATE_VARIABLE( double, PERMEABILITY_ZX )

KRATOS_CREATE_VARIABLE( double, INITIAL_JOINT_WIDTH )
KRATOS_CREATE_VARIABLE( double, TRANSVERSAL_PERMEABILITY_COEFFICIENT )
KRATOS_CREATE_VARIABLE( double, MID_PLANE_LIQUID_PRESSURE )
KRATOS_CREATE_VARIABLE( double, SLIP_TENDENCY )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LIQUID_FLUX_VECTOR )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LOCAL_LIQUID_FLUX_VECTOR )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( CONTACT_STRESS_VECTOR )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LOCAL_STRESS_VECTOR )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LOCAL_RELATIVE_DISPLACEMENT_VECTOR )
KRATOS_CREATE_VARIABLE( Matrix, PERMEABILITY_MATRIX )
KRATOS_CREATE_VARIABLE( Matrix, LOCAL_PERMEABILITY_MATRIX )

KRATOS_CREATE_VARIABLE( double, NORMAL_STIFFNESS )
KRATOS_CREATE_VARIABLE( double, SHEAR_STIFFNESS )
KRATOS_CREATE_VARIABLE( double, PENALTY_STIFFNESS )
KRATOS_CREATE_VARIABLE( double, TENSILE_STRENGTH )
KRATOS_CREATE_VARIABLE( double, BETA_EQSTRAIN_SHEAR_FACTOR )
KRATOS_CREATE_VARIABLE( int, DAMAGE_EVOLUTION_LAW )
KRATOS_CREATE_VARIABLE( double, FRICTION_ANGLE )
KRATOS_CREATE_VARIABLE( double, DILATANCY_ANGLE )
KRATOS_CREATE_VARIABLE( double, COHESION )

KRATOS_CREATE_VARIABLE( double, CRITICAL_DISPLACEMENT )

KRATOS_CREATE_VARIABLE( bool, IS_CONVERGED )

KRATOS_CREATE_VARIABLE( Matrix, TOTAL_STRESS_TENSOR )

KRATOS_CREATE_VARIABLE( Matrix, INITIAL_STRESS_TENSOR )

KRATOS_CREATE_VARIABLE( double, STATE_VARIABLE )
KRATOS_CREATE_VARIABLE( double, ARC_LENGTH_LAMBDA )
KRATOS_CREATE_VARIABLE( double, ARC_LENGTH_RADIUS_FACTOR )

KRATOS_CREATE_VARIABLE( double, TIME_UNIT_CONVERTER )

KRATOS_CREATE_VARIABLE( double, LOCAL_EQUIVALENT_STRAIN )
KRATOS_CREATE_VARIABLE( double, NONLOCAL_EQUIVALENT_STRAIN )

KRATOS_CREATE_VARIABLE( double, JOINT_WIDTH )

KRATOS_CREATE_VARIABLE( bool, NODAL_SMOOTHING )
KRATOS_CREATE_VARIABLE( Matrix, NODAL_CAUCHY_STRESS_TENSOR )
KRATOS_CREATE_VARIABLE( Matrix, EFFECTIVE_STRESS_TENSOR )
KRATOS_CREATE_VARIABLE( Matrix, NODAL_EFFECTIVE_STRESS_TENSOR )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LIQUID_PRESSURE_GRADIENT )
KRATOS_CREATE_VARIABLE( double, NODAL_JOINT_AREA )
KRATOS_CREATE_VARIABLE( double, NODAL_JOINT_WIDTH )
KRATOS_CREATE_VARIABLE( double, NODAL_JOINT_DAMAGE )
KRATOS_CREATE_VARIABLE( double, NODAL_MID_PLANE_LIQUID_PRESSURE )
KRATOS_CREATE_VARIABLE( double, NODAL_SLIP_TENDENCY )

KRATOS_CREATE_VARIABLE( double, SHEAR_FRACTURE_ENERGY )

KRATOS_CREATE_VARIABLE( double, BIOT_COEFFICIENT )
KRATOS_CREATE_VARIABLE( double, CURVE_FITTING_ETA )

KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( DAMPING_FORCE )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( DISPLACEMENT_OLD )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( DISPLACEMENT_OLDER )
KRATOS_CREATE_VARIABLE( double, FLUX_RESIDUAL )
KRATOS_CREATE_VARIABLE( double, G_COEFFICIENT )
KRATOS_CREATE_VARIABLE( double, THETA_FACTOR )

KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( TARGET_REACTION )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( AVERAGE_REACTION )
KRATOS_CREATE_3D_VARIABLE_WITH_COMPONENTS( LOADING_VELOCITY )        

}
